﻿Imports System.ComponentModel

Public Class CommandBucket
    Inherits Dictionary(Of String, IViewModelCommand)

#Region "Events"
    ' Insert Event Declarations Here
#End Region

#Region "Properties"
#Region "Constants"
    ' Insert Constant Declarations Here
#End Region

    Private Property CommandFactory As ICommandFactory
#End Region

#Region "Constructors"
    Public Sub New(commandFactory As ICommandFactory)
        Me.CommandFactory = commandFactory
    End Sub
#End Region

#Region "Methods"
    Friend Sub AddCommand(commandName As String, ByVal executeCallback As Action(Of Object))
        Me.Add(commandName, Me.CommandFactory.CreateCommand(executeCallback, True))
    End Sub

    Friend Sub AddCommand(commandName As String, ByVal executeCallback As Action(Of Object), executable As Boolean)
        Me.Add(commandName, Me.CommandFactory.CreateCommand(executeCallback, executable))
    End Sub

#Region "Event Raiser Methods"
    ' Insert Method Declarations which Raise an Event Here
#End Region

#Region "Event Handlers"
    ' Insert Method Declarations which Handle an Event Here
#End Region
#End Region

End Class
